{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Adversarial-Robustness-Toolbox for CatBoost"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from catboost import CatBoostClassifier\n",
    "\n",
    "from sklearn.datasets import load_iris\n",
    "\n",
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "from art.classifiers import CatBoostARTClassifier\n",
    "from art.attacks import ZooAttack\n",
    "from art.utils import load_mnist\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1 Training CatBoost classifier and attacking with ART Zeroth Order Optimization attack"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_adversarial_examples(x_train, y_train):\n",
    "    \n",
    "    # Create and fit CatBoost model\n",
    "    model = CatBoostClassifier(custom_loss=['Accuracy'], random_seed=42, logging_level='Silent')\n",
    "    model.fit(x_train, y_train, cat_features=None, eval_set=(x_train, y_train))\n",
    "\n",
    "    # Create ART classifier for CatBoost\n",
    "    art_classifier = CatBoostARTClassifier(model=model, nb_features=x_train.shape[1])\n",
    "\n",
    "    # Create ART Zeroth Order Optimization attack\n",
    "    zoo = ZooAttack(classifier=art_classifier, confidence=0.0, targeted=False, learning_rate=1e-1, max_iter=20,\n",
    "                    binary_search_steps=10, initial_const=1e-3, abort_early=True, use_resize=False, \n",
    "                    use_importance=False, nb_parallel=1, batch_size=1, variable_h=0.2)\n",
    "\n",
    "    # Generate adversarial samples with ART Zeroth Order Optimization attack\n",
    "    x_train_adv = zoo.generate(x_train)\n",
    "\n",
    "    return x_train_adv, model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.1 Utility functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_data(num_classes):\n",
    "    x_train, y_train = load_iris(return_X_y=True)\n",
    "    x_train = x_train[y_train < num_classes][:, [0, 1]]\n",
    "    y_train = y_train[y_train < num_classes]\n",
    "    x_train[:, 0][y_train == 0] *= 2\n",
    "    x_train[:, 1][y_train == 2] *= 2\n",
    "    x_train[:, 0][y_train == 0] -= 3\n",
    "    x_train[:, 1][y_train == 2] -= 2\n",
    "    \n",
    "    x_train[:, 0] = (x_train[:, 0] - 4) / (9 - 4)\n",
    "    x_train[:, 1] = (x_train[:, 1] - 1) / (6 - 1)\n",
    "    \n",
    "    return x_train, y_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_results(model, x_train, y_train, x_train_adv, num_classes):\n",
    "    \n",
    "    fig, axs = plt.subplots(1, num_classes, figsize=(num_classes * 5, 5))\n",
    "\n",
    "    colors = ['orange', 'blue', 'green']\n",
    "\n",
    "    for i_class in range(num_classes):\n",
    "\n",
    "        # Plot difference vectors\n",
    "        for i in range(y_train[y_train == i_class].shape[0]):\n",
    "            x_1_0 = x_train[y_train == i_class][i, 0]\n",
    "            x_1_1 = x_train[y_train == i_class][i, 1]\n",
    "            x_2_0 = x_train_adv[y_train == i_class][i, 0]\n",
    "            x_2_1 = x_train_adv[y_train == i_class][i, 1]\n",
    "            if x_1_0 != x_2_0 or x_1_1 != x_2_1:\n",
    "                axs[i_class].plot([x_1_0, x_2_0], [x_1_1, x_2_1], c='black', zorder=1)\n",
    "\n",
    "        # Plot benign samples\n",
    "        for i_class_2 in range(num_classes):\n",
    "            axs[i_class].scatter(x_train[y_train == i_class_2][:, 0], x_train[y_train == i_class_2][:, 1], s=20,\n",
    "                                 zorder=2, c=colors[i_class_2])\n",
    "        axs[i_class].set_aspect('equal', adjustable='box')\n",
    "\n",
    "        # Show predicted probability as contour plot\n",
    "        h = .01\n",
    "        x_min, x_max = 0, 1\n",
    "        y_min, y_max = 0, 1\n",
    "\n",
    "        xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))\n",
    "\n",
    "        Z_proba = model.predict_proba(np.c_[xx.ravel(), yy.ravel()])\n",
    "        Z_proba = Z_proba[:, i_class].reshape(xx.shape)\n",
    "        im = axs[i_class].contourf(xx, yy, Z_proba, levels=[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],\n",
    "                                   vmin=0, vmax=1)\n",
    "        if i_class == num_classes - 1:\n",
    "            cax = fig.add_axes([0.95, 0.2, 0.025, 0.6])\n",
    "            plt.colorbar(im, ax=axs[i_class], cax=cax)\n",
    "\n",
    "        # Plot adversarial samples\n",
    "        for i in range(y_train[y_train == i_class].shape[0]):\n",
    "            x_1_0 = x_train[y_train == i_class][i, 0]\n",
    "            x_1_1 = x_train[y_train == i_class][i, 1]\n",
    "            x_2_0 = x_train_adv[y_train == i_class][i, 0]\n",
    "            x_2_1 = x_train_adv[y_train == i_class][i, 1]\n",
    "            if x_1_0 != x_2_0 or x_1_1 != x_2_1:\n",
    "                axs[i_class].scatter(x_2_0, x_2_1, zorder=2, c='red', marker='X')\n",
    "        axs[i_class].set_xlim((x_min, x_max))\n",
    "        axs[i_class].set_ylim((y_min, y_max))\n",
    "\n",
    "        axs[i_class].set_title('class ' + str(i_class))\n",
    "        axs[i_class].set_xlabel('feature 1')\n",
    "        axs[i_class].set_ylabel('feature 2')\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2 Example: Iris dataset"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### legend\n",
    "- colored background: probability of class i\n",
    "- orange circles: class 1\n",
    "- blue circles: class 2\n",
    "- green circles: class 3\n",
    "- red crosses: adversarial samples for class i"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_classes = 2\n",
    "x_train, y_train = get_data(num_classes=num_classes)\n",
    "x_train_adv, model = get_adversarial_examples(x_train, y_train)\n",
    "plot_results(model, x_train, y_train, x_train_adv, num_classes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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uzD6+Uxr7Vhr7d7Rj1k9l5jDAXiu9k0b7AJOGU2hHbrt/ygi+aHY1F1sFvzXt5aweNEMGhq07Y3IQFB8Sk19JxEZSnK5Brxr3zQAY0xs37T3YydYa5+LO/8V4Cs5rM+AW9dxQLfsluOLXx/oaokMN4pNSaZN97DPvmdxz9238+jDIUKhSGbwWbMXDHTVRIYbxack6juJyFCTy0fQc7Jv2mAVcMpY0joHBx8h/Dj4WNI6R3dzRfJPsSlJQ0MV7y25HfDT0jKCjo4SLrl4nmbCRfJP8SmO+k4iMhQVRBb03vZNi26Kfj5AsWtwBt12pyp699bXdcxFiHanStkuRQpUX2LThImDN6dlfd0kfL4QnXEbZ3i8QerrJg2rTOEig4n6Tuo7icjglMseY1/3TZuVbt80a+0d1tr9rbX7+0xxTiqbayWuBpyk+x0OHkpc6tyK5FlOYlPVIN7Ca1JNPcFg4h7OoaCXSTX1A1QjkWFLfac46juJyFCUyx5j175pxhgfkX3TEtKyx+2bNivTfdMGK5+rhT1L5+MigIc2XATYs3S+7uCK5J9iU5KqqgZuvGkuxcXtlJVvpbi4nRtvmqvZb5H8U3yKo76TiAxFOXsE3VobMsbE9k1zA3fH9k0D3oimbo/fNw1gdSap2wer8cWvU+VbSrtTRYmrQW8gIgNAsSm1WbMXcNinX6a+bhKTauo1+BYZAIpP3anvJCJDTU7XgFtrnwCeSDp2ZdznM3N5/ULkc7XozUNkgCk2pVZV1aCBt8gAU3zqTn0nERlKBu+iRREREREREZFBRANwERERERERkTzQAFxEREREREQkDzQAFxEREREREckDDcBFRERERERE8kADcBEREREREZE80ABcREREREREJA80ABcRERERERHJAw3ARURERERERPLAM9AVEBEREREREaEziFm5ZqBrkVOaARcRERERERHJAw3ARURERERERPJAA3ARERERERGRPNAAXERERERERCQPNAAXERERERERyQMNwEVERERERETyQANwERERERERkTzQAFxEREREREQkDzQAFxEREREREckDDcBFRERERERE8kADcBEREREREZE80ABcREREREREJA80ABcRERERERHJAw3ARURERERERPJAA3ARERERERGRPNAAXERERERERCQPNAAXERERERERSWKMOdYY86ExptYY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\n",
      "text/plain": [
       "<Figure size 1080x360 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_classes = 3\n",
    "x_train, y_train = get_data(num_classes=num_classes)\n",
    "x_train_adv, model = get_adversarial_examples(x_train, y_train)\n",
    "plot_results(model, x_train, y_train, x_train_adv, num_classes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3 Example: MNIST"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.1 Load and transform MNIST dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "(x_train, y_train), (x_test, y_test), min_, max_ = load_mnist()\n",
    "\n",
    "n_samples_train = x_train.shape[0]\n",
    "n_features_train = x_train.shape[1] * x_train.shape[2] * x_train.shape[3]\n",
    "n_samples_test = x_test.shape[0]\n",
    "n_features_test = x_test.shape[1] * x_test.shape[2] * x_test.shape[3]\n",
    "\n",
    "x_train = x_train.reshape(n_samples_train, n_features_train)\n",
    "x_test = x_test.reshape(n_samples_test, n_features_test)\n",
    "\n",
    "y_train = np.argmax(y_train, axis=1)\n",
    "y_test = np.argmax(y_test, axis=1)\n",
    "\n",
    "n_samples_max = 200\n",
    "x_train = x_train[0:n_samples_max]\n",
    "y_train = y_train[0:n_samples_max]\n",
    "x_test = x_test[0:n_samples_max]\n",
    "y_test = y_test[0:n_samples_max]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.2 Train CatBoostClassifier classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<catboost.core.CatBoostClassifier at 0x7efc7c6a7ac8>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model = CatBoostClassifier(custom_loss=['Accuracy'], random_seed=42, logging_level='Silent', depth=8, iterations=20)\n",
    "model.fit(x_train, y_train, cat_features=None, eval_set=(x_train, y_train))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.3 Create and apply Zeroth Order Optimization Attack with ART"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "art_classifier = CatBoostARTClassifier(model=model, nb_features=x_train.shape[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "zoo = ZooAttack(classifier=art_classifier, confidence=0.0, targeted=False, learning_rate=1e-1, max_iter=100,\n",
    "                binary_search_steps=20, initial_const=1e-3, abort_early=True, use_resize=False, \n",
    "                use_importance=False, nb_parallel=10, batch_size=1, variable_h=0.25)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "x_train_adv = zoo.generate(x_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_test_adv = zoo.generate(x_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.4 Evaluate CatBoostClassifier on benign and adversarial samples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Training Score: 0.9700\n"
     ]
    }
   ],
   "source": [
    "y_pred = model.predict_proba(x_train)\n",
    "score = np.sum(y_train == np.argmax(y_pred, axis=1)) / y_train.shape[0]\n",
    "print(\"Benign Training Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_train[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Training Predicted Label: 5\n"
     ]
    }
   ],
   "source": [
    "prediction = np.argmax(model.predict_proba(x_train[0:1, :]), axis=1)\n",
    "print(\"Benign Training Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Training Score: 0.2050\n"
     ]
    }
   ],
   "source": [
    "y_pred = model.predict_proba(x_train_adv)\n",
    "score = np.sum(y_train == np.argmax(y_pred, axis=1)) / y_train.shape[0]\n",
    "print(\"Adversarial Training Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_train_adv[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Training Predicted Label: 3\n"
     ]
    }
   ],
   "source": [
    "prediction = np.argmax(model.predict_proba(x_train_adv[0:1, :]), axis=1)\n",
    "print(\"Adversarial Training Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Test Score: 0.5650\n"
     ]
    }
   ],
   "source": [
    "y_pred = model.predict_proba(x_test)\n",
    "score = np.sum(y_test == np.argmax(y_pred, axis=1)) / y_test.shape[0]\n",
    "print(\"Benign Test Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_test[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Test Predicted Label: 7\n"
     ]
    }
   ],
   "source": [
    "prediction = np.argmax(model.predict_proba(x_test[0:1, :]), axis=1)\n",
    "print(\"Benign Test Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Test Score: 0.2250\n"
     ]
    }
   ],
   "source": [
    "y_pred = model.predict_proba(x_test_adv)\n",
    "score = np.sum(y_test == np.argmax(y_pred, axis=1)) / y_test.shape[0]\n",
    "print(\"Adversarial Test Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_test_adv[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Test Predicted Label: 9\n"
     ]
    }
   ],
   "source": [
    "prediction = np.argmax(model.predict_proba(x_test_adv[0:1, :]), axis=1)\n",
    "print(\"Adversarial Test Predicted Label: %i\" % prediction)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "venv36",
   "language": "python",
   "name": "venv36"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
